\documentclass[a4paper]{article}

\usepackage[spanish]{babel}
\usepackage[latin1]{inputenc}
%\usepackage{bbm}
\usepackage{framed}
\input{macrosAlgo1}

\newcommand{\comen}[2]{%
\begin{framed}	
\noindent \textsf{#1:} #2
\end{framed}
}



\begin{document}

\materia{Algoritmos y Estructura de Datos I}
\cuatrimestre{2}
\anio{2012}

\fecha{30 de Agosto de 2012}

\nombre{\LARGE TPE De Hoteles y Pasajeros v1.0}

\titulotp


\section{Tipos}

\input{tipos/tipos.tex}

\vspace{0.5cm}

\section{Reserva}
\input{tipos/reserva.tex}

\vspace{0.5cm}

\section{Habitaci\'on}

\input{tipos/habitacion.tex}

\begin{problema}{pretencionesDePopStar}{as: [Accesorio], hs: [Habitacion]}{[Habitacion]}
\input{problemas/1.tex}
\end{problema}

\newpage

\section{Hotel}
\input{enunciados/hotel_enunciado.tex}

\begin{problema}{sobreReservado}{h: Hotel, f: Fecha}{\bool} 
\input{problemas/5.tex}
\end{problema}

\begin{problema}{registrarHuesped}{h: Hotel, d: DNI, f:Fecha, a: Habitacion}{} 
\input{problemas/6.tex}
\end{problema}

\begin{problema}{desRegistrarHuesped}{h: Hotel, d: DNI, f:Fecha}{} 
\input{problemas/7.tex}
\end{problema}

\begin{problema}{huespedesConPalabra}{h: Hotel}{[DNI]} 
\input{problemas/8.tex}
\end{problema}


\begin{problema}{calcularCuenta}{h: Hotel, i: CheckIn, o: CheckOut, hb: Habitacion}{Dinero} 
\input{problemas/9.tex}
\end{problema}

\begin{problema}{reservasSolapadas}{h: Hotel, d: DNI}{\bool} 
\input{problemas/10.tex}
\end{problema}


\newpage

\section{MinisterioDeTurismo}
\input{enunciados/turismo_enunciado.tex}

\begin{problema}{cadenasAmarretas}{m: MinisterioDeTurismo}{[Cadena]} 
\input{problemas/14.tex}
\end{problema}

\begin{problema}{fusionAutorizada}{m: MinisterioDeTurismo, c1: Cadena, c2: Cadena}{} 
\input{problemas/15.tex}
\end{problema}

\begin{problema}{sinLCDParaTodos}{m: MinisterioDeTurismo}{\ent} 
\input{problemas/16.tex}
\end{problema}

\section{Auxiliares}

\input{tipos/auxiliaresTipos_enunciado.tex}

\aux{cantin}{x,y:CheckOut,h:Hotel}{\ent}{|\comp{d}{d \selec ingresosDe(h,dniCheckOut(x)), 
\\ fechaCheckOut(x) \leq fechaCheckIn(d) \leq fechaCheckOut(y) }|}

%\aux{InOut}{xs:[(Dni,Fecha)],h:Hotel}{[Fecha]}{\comp{snd(d)}{d,e \selec xs, d /= e, snd(d) <= snd(e)}}

\aux {ordenada2}{xs:[\ent]}{\bool}{(\forall i \selec [0..|xs|-1), i /= j) xs_i < xs_{i+1}}

\aux{cadenas}{m: MinisterioDeTurismo}{[Cadena]}{\\ \comp{cadena(x)}{x, y \selec aplanar(cadenasDeHoteles(m)),
x \neq y, cadena(x) \neq cadena(y) }}

\aux{provinciasXCadena}{m: MinisterioDeTurismo, c: Cadena}{[Provincia]}{\\ \comp{dameProvincia(x)}
{x, y \selec cadenas(m), y \selec hotelesDeCadena(m, c), dameProvincia(m, x) \neq dameProvincia(m, y)}}

\aux{dameProvincia}{m: MinisterioDeTurismo, h: Hotel}{Provincia}{\comp{x}{x \selec secretarias(m), h \in registro(m, x)}}

\aux{hotelesDeCadena}{m: MinisterioDeTurismo, c: Cadena}{[Hotel]}{\comp{x}{x \selec cadenasDeHoteles(m), (\exists y \in x) cadena(y) == c}}

\aux {SalidasDNI}{h:Hotel}{[DNI]}{[DNICheckOut(x)| x \selec salidas(h)]}

\end{document}
